package com.cetool.autocms.enumeration;

import com.cetool.autocms.exception.ExceptionInterface;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 系统端异常枚举类
 *
 * @author 端木超群
 * @date 2020/10/27
 */
@Getter
@AllArgsConstructor
public enum SystemExceptionEnum implements ExceptionInterface {
    /**
     * 请求必填参数为空异常
     */
    PARAMETER_EMPTY_EXCEPTION("V0001", null),

    /**
     * 系统异常
     */
    SYS_EXCEPTION("S0001", "系统发生异常"),
    /**
     * 集合拷贝异常
     */
    BEANS_COPY_EXCEPTION("S0002", "集合拷贝异常"),
    /**
     * 外部系统发生异常
     */
    EXTERNAL_SYS_EXCEPTION("S0003", "外部系统发生异常"),
    /**
     * JSON反序列化异常
     */
    JSON_DESERIALIZE_EXCEPTION("S0004", "JSON反序列化异常"),
    /**
     * 文件导出关闭流异常
     */
    EXPORT_EXCEPTION("S0005", "文件导出关闭流异常"),
    /**
     * 获取aes解密信息异常
     */
    AES_KEY_EXCEPTION("S0006", "获取aes解密信息异常"),
    /**
     * 系统数据访问异常
     */
    DATA_ACCESS_EXCEPTION("D0001", "系统数据访问异常"),

    /**
     * 用户token异常
     */
    USER_TOKEN_EXCEPTION("S0007", "用户token异常"),

    /**
     * 用户token失效
     */
    USER_TOKEN_FAILURE_EXCEPTION("S0008", "用户token失效"),

    /**
     * 上传文件为空
     */
    FILEUPLOAD_FALSE_FILE_ISNULL("F0001", "上传文件为空");

    /**
     * 异常编码
     */
    private final String exceptionCode;

    /**
     * 异常信息
     */
    private final String exceptionMsg;
}
